From: Georges Basile Stavracas Neto Date: Sat, 6 Oct 2018 01:28:10 +0000 (-0300) Subject: theme-node-transition: Receive a CoglFramebuffer X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~897^2^2~110 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=a2f27a94099d3e4f9ddc7c391e3b19cbd6492f5d;p=gnome-shell.git theme-node-transition: Receive a CoglFramebuffer This is in preparation for a future where only explicit frambuffer APIs are available, i.e., cogl_get_draw_framebuffer() does not exist. There is absolutely no functional changes in this patch (nor the following ones in this series), only rearrangements so that various functions receive a CoglFramebuffer instead of using the draw framebuffer. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/283 --- diff --git a/src/st/st-theme-node-transition.c b/src/st/st-theme-node-transition.c index 62f0ef517..294c7e664 100644 --- a/src/st/st-theme-node-transition.c +++ b/src/st/st-theme-node-transition.c @@ -337,11 +337,11 @@ setup_framebuffers (StThemeNodeTransition *transition, void st_theme_node_transition_paint (StThemeNodeTransition *transition, + CoglFramebuffer *framebuffer, ClutterActorBox *allocation, guint8 paint_opacity) { StThemeNodeTransitionPrivate *priv = transition->priv; - CoglFramebuffer *fb = cogl_get_draw_framebuffer (); CoglColor constant; float tex_coords[] = { @@ -374,7 +374,8 @@ st_theme_node_transition_paint (StThemeNodeTransition *transition, paint_opacity, paint_opacity, paint_opacity, paint_opacity); - cogl_framebuffer_draw_multitextured_rectangle (fb, priv->material, + cogl_framebuffer_draw_multitextured_rectangle (framebuffer, + priv->material, priv->offscreen_box.x1, priv->offscreen_box.y1, priv->offscreen_box.x2, diff --git a/src/st/st-theme-node-transition.h b/src/st/st-theme-node-transition.h index 8762b6d31..6f45ab834 100644 --- a/src/st/st-theme-node-transition.h +++ b/src/st/st-theme-node-transition.h @@ -41,6 +41,7 @@ void st_theme_node_transition_update (StThemeNodeTransition *transition, StThemeNode *new_node); void st_theme_node_transition_paint (StThemeNodeTransition *transition, + CoglFramebuffer *framebuffer, ClutterActorBox *allocation, guint8 paint_opacity); diff --git a/src/st/st-widget.c b/src/st/st-widget.c index 7c39b3585..38a078c02 100644 --- a/src/st/st-widget.c +++ b/src/st/st-widget.c @@ -414,10 +414,12 @@ void st_widget_paint_background (StWidget *widget) { StWidgetPrivate *priv = st_widget_get_instance_private (widget); + CoglFramebuffer *framebuffer; StThemeNode *theme_node; ClutterActorBox allocation; guint8 opacity; + framebuffer = cogl_get_draw_framebuffer (); theme_node = st_widget_get_theme_node (widget); clutter_actor_get_allocation_box (CLUTTER_ACTOR (widget), &allocation); @@ -426,12 +428,13 @@ st_widget_paint_background (StWidget *widget) if (priv->transition_animation) st_theme_node_transition_paint (priv->transition_animation, + framebuffer, &allocation, opacity); else st_theme_node_paint (theme_node, current_paint_state (widget), - cogl_get_draw_framebuffer (), + framebuffer, &allocation, opacity); }